package com.zw.a.basic.a14.demo05_tcp_exercise;

//案例: TCP协议入门之 客户端给服务器端发送一句话, 服务器端给出回执信息.

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

//自定义的TCP协议的客户端.
/*
    涉及到的类:
        Socket类
            构造方法:
                public Socket(InetAddress inet, int port);
                public Socket(String id, int port);             服务器ip, 端口号.
            成员方法:
                public InputStream  getInputStream();    获取输入流, 可以读取服务器端写过来的内容.
                public OutputStream getOutputStream();   获取输出流, 可以往服务器端写数据.
                public void close();                     关闭socket对象.
 */
public class ClientDemo {
    public static void main(String[] args) throws IOException {
        //1. 创建客户端Socket对象.
        Socket socket = new Socket("127.0.0.1", 10010);

        //2. 获取输出流, 可以往服务器端写数据.
        //多态
        OutputStream os = socket.getOutputStream();
        //3. 给服务端写一句话.
        os.write("hello, tcp, 我来了!".getBytes());

        //4. 获取输入流, 可以读取服务器端写过来的数据.
        InputStream is = socket.getInputStream();
        //5. 读取服务器端写过来的数据, 并打印.
        byte[] bys = new byte[1024];
        int len = is.read(bys);
        String s = new String(bys, 0, len);
        System.out.println("客户端接收到数据: " + s);

        //6. 关闭客户端Socket对象.
        socket.close();
    }
}
